﻿using System;
using Samples.Radio.Agent.Data;
using Samples.Radio.Agent.Model;
using WindowsPhoneAudioStreaming.Audio.Streaming.Agent;

namespace Samples.Radio.Agent
{
    /// <summary>
    /// Inteface to define basic service interface to get current playing tracks
    /// </summary>
    public interface INowPlayingService : IAudioPlayerService
    {
        Repository Repository { get; }
        int NumberRecentTracksToDisplay { get; set; }
        DateTime LastUpdated { get; }
        Uri CurrentDataService { get; set; }
        TrackModel CurrentTrack { get; }
        TrackModel[] RecentTracks { get; }
        PlaylistTrack[] ActiveTrackList { get; }

        PlaylistTrack[] QueuedTrackList { get; }

        void RefreshCurrentTrack();
        void UpdateLiveTile(bool includeMusicAndVideoHub=false);

        event EventHandler TracksUpdated;
        event EventHandler LiveTileUpdated;

        
        void AddTrackToPlaylist(PlaylistTrack track);
    }


}
